/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.unam.fciencias.ActividadesCulturales.pages.Actividad;

import java.util.List;
import java.util.Locale;
import mx.unam.fciencias.ActividadesCulturales.pages.Index;
import mx.unam.fciencias.ActividadesCulturales.services.ServicioActividad;
import mx.unam.fciencias.actividadesculturales.entidades.db.Actividad;
import mx.unam.fciencias.actividadesculturales.entidades.portal.UsuarioSistema;
import org.apache.tapestry5.EventContext;
import org.apache.tapestry5.PersistenceConstants;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.Service;
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.annotations.SetupRender;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;

/**
 * Página que permite ver las actividades capturadas.
 * @author lumartin
 */
public class Ver {

    /** Usuario de sesion y del sistema. */
    @SessionState
    @Property
    private UsuarioSistema usuario;
    /** Propiedad manejada por la sesion para saber si la sesion del usuario esta activa. */
    private boolean usuarioExists;
    /*private final String _demoModeStr = System.getProperty("");*/
    /** Propiedad con las actividades a mostrar. */
    @Property
    private List<Actividad> _actividades;
    /** Propiedad actividad utilizada en el grid. */
    @Property
    private Actividad _actividad;
    /*@SuppressWarnings("unused")
    @Property
    @Persist(PersistenceConstants.FLASH)
    private String _errorMessage;*/
    
    /** Inyección de srvicio utilizado para el acceso a datos de actividad. */
    @Inject
    @Service("servicioActividad")
    private ServicioActividad _servicioActividad;
    /*@Inject
    private Messages _messages;
    @Inject
    private Locale _currentLocale;*/

    /**
     * setupRender() es llamado por Tapestry justo despues de empezar a pintar la página.
     * En este metodo se cargan todas las actividades capturadas.
     */
    @SetupRender
    public void setup() {
        _actividades = _servicioActividad.getActividad(null);
    }

    // Maneja el evento "delete"
    /*void onDelete(Long id, String nombre) {
        if (_demoModeStr != null && _demoModeStr.equals("true")) {
            _errorMessage = "Sorry, but this function is not allowed in Demo mode.";
            return;
        }

        try {
            Actividad actividad = _servicioActividad.getById(id);
            if (!actividad.getNombre_actividad().equals(nombre)) {
                _errorMessage = "No se pudo eliminar por que fue modificada o borrada, actualice la página e intentelo de nuevo.";
            } else {
                _servicioActividad.elimina(actividad);
            }
        } catch (Exception e) {
            _errorMessage = "No se pudo";
        }
    }*/

    /**
     * Método que se ejecuta cuando se manda a llamar la pagina.
     * @return la pagina a redireccionar.
     */
    public Object onActivate() {
        if (!usuarioExists || !usuario.puedeLeer()) {
            return Index.class;
        }
        return null;
    }
}
